import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Solution1253 {
    public List<List<Integer>> reconstructMatrix(int upper, int lower, int[] colsum) {
        if (upper+lower!= Arrays.stream(colsum).sum()){
            return new ArrayList<>();
        }
        List<List<Integer>> ans=new ArrayList<>();
        for (int i=0;i<colsum.length;i++){
            ans.add(new ArrayList<>());
        }
        int a=0,b=0;
        for (int i=0;i<colsum.length;i++){
            if (colsum[i]==0){
                ans.get(i).add(0);
                ans.get(i).add(0);
            }else if (colsum[i]==2){
                ans.get(i).add(1);
                ans.get(i).add(1);
                a++;
                b++;
            }
        }
        if (a>upper || b>lower){
            return new ArrayList<>();
        }
        for (int i=0;i<colsum.length;i++){
            if (colsum[i]==1){
                if (a<upper){
                    ans.get(i).add(1);
                    ans.get(i).add(0);
                    a++;
                }else {
                    ans.get(i).add(0);
                    ans.get(i).add(1);
                }
            }
        }
        List<List<Integer>> lists=new ArrayList<>();
        lists.add(new ArrayList<>());
        lists.add(new ArrayList<>());
        for (int i=0;i<2;i++){
            for (int j=0;j<colsum.length;j++){
                lists.get(i).add(ans.get(j).get(i));
            }
        }
        return lists;
    }

    public static void main(String[] args) {
        System.out.println(new Solution1253().reconstructMatrix(2,1,new int[]{1,1,1}));
    }
}
